const express = require('express');
const bodyParser = require('body-parser');

const {mongoose} = require('./db/mongoose');
const {Todo} = require('./models/todo');
const {User} = require('./models/user');

const {ObjectID} = require('mongodb');

let app = express();

const port = process.env.PORT || 3000;

app.use(bodyParser.json());

app.post('/todos', (req, res) => {
    // console.log(req.body);
    let todo = new Todo({
        text: req.body.text
    })

    todo.save().then((doc) => {
        // console.log(doc);
        res.send(doc);
    }, (err) => {
        // console.log(err);
        res.status(400).send(err);
    })
})

app.get('/todos', (req, res) => {
    Todo.find().then((todos) => {

        res.send({todos});
    }, (err) => {
        console.log(err);
        res.status(400).send(e)
    })
})

app.get('/todos/:id', (req, res) => {
    // res.send(req.params)

    let id = req.params.id;
    if (!ObjectID.isValid(id)) {
        res.status(404).send();
        return;
    }

    Todo.findById(id).then((todo) => {
        if (todo) {
            res.send({todo});
        } else {
            res.status(404).send()
        }
    }, (e) => {

        res.status(400).send({})
    }).catch((e) => {
        res.status(400).send();
    })


})

app.listen(port, () => {
    console.log(`Started on port ${port}`);
})

module.exports = {app};
